#pragma once

#include "defines.h"
#include "../../StarEngine/jni/Scenes/BaseScene.h"
#include "Logger.h"
#include "Context.h"
#include "Objects/Object.h"
#include "StarComponents.h"
#include "Objects/BaseCamera.h"
#include "Helpers/Timer.h"

#include "../Objects/StartButton.h"
#include "../Objects/PauseScreen.h"

class MenuScene : public star::BaseScene
{
public:
	MenuScene(const tstring& name);
	virtual ~MenuScene();

	void CreateObjects();
	void AfterInitializedObjects();
	void Update(const star::Context& context);
	void Reset();

private:
	star::BaseCamera *m_pActiveCamera;
	star::Object *m_pBackground,
				 *m_pBlock1,
				 *m_pBlock2,
				 *m_pBlock3,
				 *m_pBlock4,
				 *m_pLine1,
				 *m_pLine2,
				 *m_pLine3,
				 *m_pLine4,
				 *m_pDeletionBlock1,
				 *m_pDeletionBlock2,
				 *m_pDeletionBlock3,
				 *m_pDeletionBlock4,
				 *m_pHighScore,
				 *m_pScreenOverlay;	
	StartButton *m_pButton;
	PauseScreen *m_pLoadingScreen;
	float m_PassedMiliseconds;
	bool m_bFirstTime,
		 m_bThatOneTick;

	MenuScene(const MenuScene& t);
	MenuScene(MenuScene&& t);
	MenuScene& operator=(const MenuScene& t);
};
